Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Constructive Solid Geometry</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Constructive_Solid_Geometry"> <link href="./_mw_/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/mediawiki.page.gallery.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Constructive_Solid_Geometry rootpage-Constructive_Solid_Geometry skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Constructive Solid Geometry</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">
<p><b>Constructive Solid Geometry</b> (<b>CSG</b>) oder <b>konstruktive Festkörpergeometrie</b> ist eine Technik zum <a href="Geometrische_Modellierung" title="Geometrische Modellierung">Modellieren</a> von Körpern, die u.&nbsp;a. in der 3D-<a href="Computergrafik" title="Computergrafik">Computergrafik</a> und bei <a href="Computer-aided_design" class="mw-redirect" title="Computer-aided design">CAD</a>-Programmen genutzt wird. Constructive Solid Geometry ermöglicht einem Designer einen komplex geformten Körper zu erzeugen, indem er <a href="Boolesche_Algebra" title="Boolesche Algebra">boolesche Operatoren</a> zur Kombination von Grundkörpern zu einem neuen Körper benutzt. Aus der CSG hervorgegangene Körper wirken oft sehr komplex, sind aber in Wirklichkeit nichts anderes als geschickt verknüpfte Objekte.
</p>

<div class="mw-heading mw-heading2"><h2 id="Basisobjekte">Basisobjekte</h2></div>
<p>Die Basisobjekte, aus denen CSG-Körper hervorgehen, nennt man Primitive (vgl. <a href="Grafisches_Primitiv" title="Grafisches Primitiv">Grafisches Primitiv</a>). Typischerweise handelt es sich dabei um Körper, deren Oberfläche mittels einer relativ einfachen mathematischen Formel beschrieben werden kann, wie z.&nbsp;B. <a href="W%C3%BCrfel_(Geometrie)" title="Würfel (Geometrie)">Würfel</a>, <a href="Zylinder_(Geometrie)" title="Zylinder (Geometrie)">Zylinder</a>, <a href="Prisma_(Geometrie)" title="Prisma (Geometrie)">Prismen</a>, <a href="Pyramide_(Geometrie)" title="Pyramide (Geometrie)">Pyramiden</a>, <a href="Kugel" title="Kugel">Kugeln</a> oder <a href="Kreisring" title="Kreisring">Ringe</a>. Die Menge der möglichen Primitive wird gewöhnlich von der verwendeten Software begrenzt. Einige Software-Pakete erlauben CSG auf gekrümmten Objekten (prozedurale oder parametrische Oberflächen), während andere nur auf polygonalen Meshes (Dreiecksnetze) arbeiten. Der prozedurale oder parametrische Ansatz erlaubt eine mathematisch exakte Berechnung und Repräsentation der Körper, während Meshes immer nur eine mehr oder weniger ungenaue Annäherung an die Wirklichkeit sind.
</p><p>Wie bereits erwähnt, wird ein komplexer Körper von Primitiven erzeugt, die durch Operationen verknüpft sind. Gewöhnlich handelt es sich dabei um <a href="Boolesche_Algebra" title="Boolesche Algebra">boolesche Operationen</a> auf Mengen: <a href="Vereinigungsmenge" class="mw-redirect" title="Vereinigungsmenge">Vereinigung</a> (Union, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \cup }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>∪<!-- ∪ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \cup }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/e8ff7d0293ad19b43524a133ae5129f3d71f2040.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.55ex; height:2.009ex;" alt="{\displaystyle \cup }" loading="lazy"></span>), <a href="Mengenlehre#Differenz_und_Komplement" title="Mengenlehre">Differenz</a> (Difference, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle -}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>−<!-- − --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle -}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/04bd52ce670743d3b61bec928a7ec9f47309eb36.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:1.808ex; height:2.176ex;" alt="{\displaystyle -}" loading="lazy"></span>) und <a href="Schnittmenge" class="mw-redirect" title="Schnittmenge">Schnitt</a> (Intersection, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \cap }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>∩<!-- ∩ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \cap }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/9d4e886e6f5a28a33e073fb108440c152ecfe2d3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.55ex; height:2.009ex;" alt="{\displaystyle \cap }" loading="lazy"></span>). Folgende Abbildung zeigt die Wirkung der Operatoren exemplarisch an der Verknüpfung von Würfel mit Kugel:
</p>
<ul class="centered gallery mw-gallery-traditional">
<li class="gallerybox" style="width: 155px">
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"></span></div>
<div class="gallerytext">Vereinigung: Zwei Objekte werden zu einem verschmolzen.</div>
</li>
<li class="gallerybox" style="width: 155px">
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"></span></div>
<div class="gallerytext">Differenz: Teile des zweiten Objekts werden aus dem ersten herausgeschnitten. Subtraktion (Würfel – Kugel).</div>
</li>
<li class="gallerybox" style="width: 155px">
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"></span></div>
<div class="gallerytext">Schnitt: Der Teil, den beide Objekte gemeinsam haben.</div>
</li>
</ul>
<div class="mw-heading mw-heading2"><h2 id="Anwendungen">Anwendungen</h2></div>
<p>CSG ist unter Designern sehr beliebt, da man mit einer Anzahl relativ einfacher Körper komplexe Geometrien formen kann. Der Designer kann (bei den meisten Programmen) die Geometrie auch im Nachhinein noch ändern, indem er die Position (bzw. Transformation) der einzelnen Objekte oder den booleschen Operator ändert, mit dem die Objekte verbunden sind. Der Designer kann also sein Modell interaktiv und intuitiv, durch Versuch-und-Irrtum, kreieren.
</p><p>CSG wird aber auch von diversen Programmen „unter der Haube“ benutzt, d.&nbsp;h. ohne, dass der Benutzer etwas von der Existenz der CSG-Operationen mitbekommt. So benutzen z.&nbsp;B. die Game-Engines von Unreal und Quake das CSG-Verfahren. <a href="Simulation" title="Simulation">Simulationsprogramme</a>, die die Abläufe an Werkzeugmaschinen simulieren, verwenden i.&nbsp;d.&nbsp;R. ebenfalls CSG.
</p>
<div class="mw-heading mw-heading2"><h2 id="CSG-Baum">CSG-Baum</h2></div>
<p> Da mehrere hintereinander ausgeführte CSG-Operationen im Allgemeinen nicht kommutativ sind, lassen sie sich hierarchisch ordnen und in einen CSG-Baum überführen. Jedes Blatt entspricht dabei einem Primitiv, jeder Knoten einer CSG-Operation (bzw. dem Zwischenergebnis aus einer CSG-Operation, welches wieder transformiert werden kann). Die Wurzel des Baumes ist das Endergebnis.
</p><p>Die <a href="Regul%C3%A4re_Menge" title="Reguläre Menge">regularisierten Mengen</a> des n-dimensionalen euklidischen Raumes bilden mit den Verknüpfungen <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \cup }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>∪<!-- ∪ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \cup }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/e8ff7d0293ad19b43524a133ae5129f3d71f2040.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.55ex; height:2.009ex;" alt="{\displaystyle \cup }" loading="lazy"></span>, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \cap }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>∩<!-- ∩ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \cap }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/9d4e886e6f5a28a33e073fb108440c152ecfe2d3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.55ex; height:2.009ex;" alt="{\displaystyle \cap }" loading="lazy"></span>, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle c}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>c</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle c}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/86a67b81c2de995bd608d5b2df50cd8cd7d92455.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.007ex; height:1.676ex;" alt="{\displaystyle c}" loading="lazy"></span>(Komplementärmenge) eine boolesche Algebra, für die auch das Kommutativgesetz gilt. Der <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \setminus }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo class="MJX-variant">∖<!-- ∖ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \setminus }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/d0e20e45087a97f0448fc3d4bc27b060084830f4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:1.162ex; height:2.843ex;" alt="{\displaystyle \setminus }" loading="lazy"></span>-Operator ist nicht Teil dieser booleschen Algebra. Allerdings lassen sich der <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle c}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>c</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle c}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/86a67b81c2de995bd608d5b2df50cd8cd7d92455.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.007ex; height:1.676ex;" alt="{\displaystyle c}" loading="lazy"></span>- und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \cap }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>∩<!-- ∩ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \cap }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/9d4e886e6f5a28a33e073fb108440c152ecfe2d3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.55ex; height:2.009ex;" alt="{\displaystyle \cap }" loading="lazy"></span>-Operator als Ersatz für den <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \setminus }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo class="MJX-variant">∖<!-- ∖ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \setminus }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/d0e20e45087a97f0448fc3d4bc27b060084830f4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:1.162ex; height:2.843ex;" alt="{\displaystyle \setminus }" loading="lazy"></span>-Operator verwenden:
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle A\setminus B\ =A\cap cB}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>A</mi>
<mo class="MJX-variant">∖<!-- ∖ --></mo>
<mi>B</mi>
<mtext>&nbsp;</mtext>
<mo>=</mo>
<mi>A</mi>
<mo>∩<!-- ∩ --></mo>
<mi>c</mi>
<mi>B</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle A\setminus B\ =A\cap cB}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/0e5dc8189dfc0db767e4a2e7e86d5a493f9af905.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:16.477ex; height:2.843ex;" alt="{\displaystyle A\setminus B\ =A\cap cB}" loading="lazy"></span>.</dd></dl>
<p>Das Beispielobjekt lässt sich von daher auch ohne Klammerung berechnen (<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle W}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>W</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle W}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/54a9c4c547f4d6111f81946cad242b18298d70b7.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.435ex; height:2.176ex;" alt="{\displaystyle W}" loading="lazy"></span> = Würfel, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle K}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>K</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle K}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/2b76fce82a62ed5461908f0dc8f037de4e3686b0.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.066ex; height:2.176ex;" alt="{\displaystyle K}" loading="lazy"></span> = Kugel, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle Z_{1},\ Z_{2},\ Z_{3}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>Z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo>,</mo>
<mtext>&nbsp;</mtext>
<msub>
<mi>Z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<mo>,</mo>
<mtext>&nbsp;</mtext>
<msub>
<mi>Z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle Z_{1},\ Z_{2},\ Z_{3}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/6312a1c6429b7ad51d9ce5dc475a0f39f8f6ac23.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:11.154ex; height:2.509ex;" alt="{\displaystyle Z_{1},\ Z_{2},\ Z_{3}}" loading="lazy"></span> = Zylinder):
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathrm {Resultat} =W\cap K\setminus (Z_{1}\cup Z_{2}\cup Z_{3})=W\cap K\cap cZ_{1}\cap cZ_{2}\cap cZ_{3}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">e</mi>
<mi mathvariant="normal">s</mi>
<mi mathvariant="normal">u</mi>
<mi mathvariant="normal">l</mi>
<mi mathvariant="normal">t</mi>
<mi mathvariant="normal">a</mi>
<mi mathvariant="normal">t</mi>
</mrow>
<mo>=</mo>
<mi>W</mi>
<mo>∩<!-- ∩ --></mo>
<mi>K</mi>
<mo class="MJX-variant">∖<!-- ∖ --></mo>
<mo stretchy="false">(</mo>
<msub>
<mi>Z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo>∪<!-- ∪ --></mo>
<msub>
<mi>Z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<mo>∪<!-- ∪ --></mo>
<msub>
<mi>Z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msub>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mi>W</mi>
<mo>∩<!-- ∩ --></mo>
<mi>K</mi>
<mo>∩<!-- ∩ --></mo>
<mi>c</mi>
<msub>
<mi>Z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo>∩<!-- ∩ --></mo>
<mi>c</mi>
<msub>
<mi>Z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<mo>∩<!-- ∩ --></mo>
<mi>c</mi>
<msub>
<mi>Z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \mathrm {Resultat} =W\cap K\setminus (Z_{1}\cup Z_{2}\cup Z_{3})=W\cap K\cap cZ_{1}\cap cZ_{2}\cap cZ_{3}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/f0908efcdcc999c87bdd603d59a34a912d86086f.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:64.723ex; height:2.843ex;" alt="{\displaystyle \mathrm {Resultat} =W\cap K\setminus (Z_{1}\cup Z_{2}\cup Z_{3})=W\cap K\cap cZ_{1}\cap cZ_{2}\cap cZ_{3}}" loading="lazy"></span>.</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Boundary_Representation" title="Boundary Representation">Boundary Representation</a></li>
<li>Convex Differences Aggregate</li>
<li>Goldfeather-Algorithmus</li>
<li><a href="Solid_modeling" title="Solid modeling">Solid modeling</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Christoph Martin Hoffmann: <cite style="font-style:italic">Geometric &amp; Solid Modeling</cite>. Morgan Kaufmann Publishers, San Mateo, California 1989, ISBN 1-55860-067-1.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Constructive+Solid+Geometry&amp;rft.au=Christoph+Martin+Hoffmann&amp;rft.btitle=Geometric+%26+Solid+Modeling&amp;rft.date=1989&amp;rft.genre=book&amp;rft.isbn=1558600671&amp;rft.place=San+Mateo%2C+California&amp;rft.pub=Morgan+Kaufmann+Publishers" style="display:none">&nbsp;</span></li>
<li>Martii Mäntylä: <cite style="font-style:italic">An Introduction to Solid Modeling</cite>. Computer Science Press, Rockville, Maryland 1988, ISBN 0-88175-108-1.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Constructive+Solid+Geometry&amp;rft.au=Martii+M%C3%A4ntyl%C3%A4&amp;rft.btitle=An+Introduction+to+Solid+Modeling&amp;rft.date=1988&amp;rft.genre=book&amp;rft.isbn=0881751081&amp;rft.place=Rockville%2C+Maryland&amp;rft.pub=Computer+Science+Press" style="display:none">&nbsp;</span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://github.com/c-ohle/CSG-Project">CSG-3MF Project</a> - Open Source Bibliothek (GPL), C++, COM basiert mit C# Skript Unterstützung.</li>
<li><a rel="nofollow" class="external text" href="http://gts.sourceforge.net/">GNU Triangulated Surface library</a> – Open Source (<a href="LGPL" class="mw-redirect" title="LGPL">LGPL</a>) Bibliothek mit CSG-Unterstützung für Dreiecke</li>
<li><a rel="nofollow" class="external text" href="https://www.cgal.org/">Computational Geometry Algorithms Library</a> – Open Source (<a href="LGPL" class="mw-redirect" title="LGPL">LGPL</a>, <a href="GPL" class="mw-redirect" title="GPL">GPL</a>) Bibliothek, welche unter anderem <a rel="nofollow" class="external text" href="https://www.cgal.org/Part/PolygonAndPolyhedronOperations">CSG unterstützt</a>.</li>
<li><a rel="nofollow" class="external text" href="http://opencsg.org/">The CSG rendering library</a> – Open-Source-Bibliothek (GPL, Version 2) mit bildbasierenden CSG-Techniken via OpenGL.</li>
<li><a rel="nofollow" class="external text" href="http://www.openscad.org/">OpenSCAD</a> – Ein einfaches CAD-Programm zur Erzeugung von 3D Objekten auf Basis von CSG.</li>
<li><a rel="nofollow" class="external text" href="http://hyperfun.org/">HyperFun Project</a> – Eine einfache Skriptsprache um CSG-Operationen auf verschiedene Objekte anzuwenden.</li>
<li><a rel="nofollow" class="external text" href="http://avocado-cad.sourceforge.net/wiki/index.php/Dev_Implementation#CSG_Boolean_Operations">Overview of CSG in avoCADo</a> – Open Source 3D-CAD-Software.</li>
<li><a rel="nofollow" class="external text" href="http://www.cern.ch/theis/simplegeo">SimpleGeo</a> – Interaktiver CSG-Modeler für Monte-Carlo-Teilchentransport-Simulationen.</li>
<li><a rel="nofollow" class="external text" href="http://www.fmepedia.com/index.php/CSGBuilder_Example">FMEpedia CSGBuilder example</a> – CSG mittels sogenannter FME (Feature Manipulation Engine).</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2023-03-11" href="https://de.wikipedia.org/wiki/?title=Constructive_Solid_Geometry&amp;oldid=231707035">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>